//implement GMutexImplCreator::create
//andycai_sc 2011-05-18

#include "GParallel/GMutex.h"

GMutexImpl* GMutexImplCreator::create()
{
#if (defined(USE_ACE_ALL) && !defined(NO_ACE_MUTEX)) || defined(USE_ACE_MUTEX)
    return createMutexFromAce();
#elif (defined(USE_BOOST_ALL) && !defined(NO_BOOST_MUTEX)) || defined(USE_BOOST_MUTEX)
    return createMutexFromBoost();
#elif (defined(USE_POCO_ALL) && !defined(NO_POCO_MUTEX)) || defined(USE_POCO_MUTEX)
    return createMutexFromPoco();
#elif (defined(USE_QT_ALL) && !defined(NO_QT_MUTEX)) || defined(USE_QT_MUTEX)
    return createMutexFromQt();
#elif (defined(USE_STL_ALL) && !defined(NO_STL_MUTEX)) || defined(USE_STL_MUTEX)
    return createMutexFromStl();
#else
	return createMutexFromGToy();
#endif
}
